Cloud based application delivery has become popular. Software application offerings by vendors (including cloud vendors) span a wide spectrum of disciplines and uses. A single cloud deployment might host many diverse applications such as business applications, consumer applications, data mining applications, etc., and cloud vendors are often customer-driven to support customization of such applications. In some cases a software application provider may offer rudimentary integration between one of their application titles and another one of their application titles. For example, a “data mining tool” might write the results of a data mining operation to a database or file, and a “list maker tool” might read data from that database or file. In some cases providers pre-specify permitted (e.g., pre-tested) inter-application I/O parameters.
Many customers/users of the many diverse applications need to customize the application and/or provide add-on “customerization” of the vended applications. However, adding an add-on or other type of “customerization” to the vended applications often defeats the aforementioned offered rudimentary integration. This situation introduces several problems such as: (1) if the practices suggested by the software vendors are followed, the customers/users cannot seize full benefit of the software titles in combination; (2) even if a customer/user can seize benefit from the aforementioned offered rudimentary integration, the customers/users are at the mercy of the software vendor's release schedule; and (3) customer/users cannot easily seize benefit from integration between software titles provided by different vendors.
One legacy approach has been to employ consultants who write custom code to implement customer-specified integration between such applications. However, this approach has many drawbacks including (1) even if a customer/user can seize benefit from the custom code, the customers/users are at the mercy of changes rolled-out by the software vendors; and (2) the rate at which software vendors release code updates has increased dramatically, thus commensurately exploding the costs incurred to employ consultants to maintain custom code.
What's needed are techniques to facilitate high-function inter-application integration without requiring consultants to develop custom code and without requiring revisions to customerized (e.g., consultant-developed) code at each release of the constituent applications.